// 对axios进行二次封装
import axios from 'axios';
import nProgress from 'nprogress';
import 'nprogress/nprogress.css';
import store from '@/store'

const requests = axios.create({
    baseURL: '/api', // 本地开发时会通过代理转发
    timeout: 5000
});

// 请求拦截器
requests.interceptors.request.use(
    config => {
        if (store.state.detail.uuid_token) {
            // 给请求头添加字段
            config.headers.userTempId = store.state.detail.uuid_token
        }
        if (store.state.user.token) {
            // 请求头携带token
            config.headers.token = store.state.user.token
        }
        nProgress.start();
        return config;
    },
    error => {
        return Promise.reject(error);
    }
);

// 响应拦截器（保留错误处理）
requests.interceptors.response.use(
    response => {
        nProgress.done();
        return response.data;
    },
    error => {
        console.error('请求失败:', error);
        if (error.response) {
            console.error('状态码:', error.response.status);
            console.error('错误信息:', error.response.data);
        }
        return Promise.reject(error);
    }
);

export default requests;